//package com.ants.platform.core.plugins.mail;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Service;
//
//import javax.activation.DataHandler;
//import javax.activation.FileDataSource;
//import javax.mail.*;
//import javax.mail.internet.InternetAddress;
//import javax.mail.internet.MimeBodyPart;
//import javax.mail.internet.MimeMessage;
//import javax.mail.internet.MimeMultipart;
//
///**
// *  需要导入javax.mail jar包
// * <dependency>
// *  <groupId>javax.mail</groupId>
// *  <artifactId>mail</artifactId>
// *  <version>1.4.3</version>
// * </dependency>
// * Created by liushun on 2016/7/21.
// */
//@Service
//public class MailManager extends MailParams implements MailClient {
//
//    private static final Logger logger = LoggerFactory.getLogger(MailManager.class);
//
//    /**
//     * 发送邮件
//     *
//     * @param fromTo    目标邮箱
//     * @param title     邮件标题
//     * @param content   文本内容
//     * @param fileNames 附件数组
//     * @param type      邮件类型 0、纯文本邮件 1、附件邮件 2、图片邮件 3、图片附件邮件
//     */
//    public boolean sendMail(String fromTo, String title, String content, String[] fileNames, EmailType type) {
//        Transport ts = null;
//        MimeMessage message = null;
//        try {
//            ts = session.getTransport();
//            //3、使用邮箱的用户名和密码连上邮件服务器，发送邮件时，发件人需要提交邮箱的用户名和密码给smtp服务器，用户名和密码都通过验证之后才能够正常发送邮件给收件人。
//            ts.connect(mailProp.getProperty("mail.host"), (Integer) mailProp.get("mail.port"), mailProp.getProperty("mail.account"), mailProp.getProperty("mail.password"));
//            //创建消息体
//            if (type == EmailType.TextType) message = TxtMessage(fromTo, title, content);
//            else if (type == EmailType.FileType) message = FileMessage(fromTo, title, content, fileNames);
//            else if (type == EmailType.ImageType) message = ImageMessage(fromTo, title, content, fileNames);
//            //5、发送邮件
//            ts.sendMessage(message, message.getAllRecipients());
//            ts.close();
//        } catch (Exception e) {
//            e.printStackTrace();
//            logger.error("向 {} 发送邮件失败!", fromTo, e);
//            return false;
//        }
//        return true;
//    }
//
//    /**
//     * 不带附件发送文件
//     *
//     * @param fromTo
//     * @param title
//     * @param content
//     */
//    public boolean sendMail(String fromTo, String title, String content) {
//        return sendMail(fromTo, title, content, null, EmailType.TextType);
//    }
//
//    /**
//     * 文本消息体
//     *
//     * @param fromTo  目标邮箱
//     * @param title   标题
//     * @param content 内容
//     * @return
//     */
//    private MimeMessage TxtMessage(String fromTo, String title, String content) {
//        MimeMessage message = new MimeMessage(session);
//        //指明邮件的发件人
//        try {
//            message.setFrom(new InternetAddress(mailProp.getProperty("mail.account")));
//            //指明邮件的收件人，现在发件人和收件人是一样的，那就是自己给自己发
//            message.setRecipient(Message.RecipientType.TO, new InternetAddress(fromTo));
//            //邮件的标题
//            message.setSubject(title);
//            //邮件的文本内容
//            message.setContent(content, "text/html;charset=UTF-8");
//            //返回创建好的邮件对象
//        } catch (MessagingException e) {
//            e.printStackTrace();
//        }
//        return message;
//    }
//
//    /**
//     * 附件消息体
//     *
//     * @param fromTo    目标邮箱
//     * @param title     标题
//     * @param content   内容
//     * @param fileNames 附件数组
//     * @return
//     * @throws Exception
//     */
//    private MimeMessage FileMessage(String fromTo, String title, String content, String[] fileNames) throws Exception {
//        MimeMessage message = new MimeMessage(session);
//        //设置邮件的基本信息
//        //发件人
//        message.setFrom(new InternetAddress(mailProp.getProperty("mail.account")));
//        //收件人
//        message.setRecipient(Message.RecipientType.TO, new InternetAddress(fromTo));
//        //邮件标题
//        message.setSubject(title);
//
//        //创建邮件正文，为了避免邮件正文中文乱码问题，需要使用charset=UTF-8指明字符编码
//        MimeBodyPart text = new MimeBodyPart();
//        text.setContent(content, "text/html;charset=UTF-8");
//
//        //创建容器描述数据关系
//        MimeMultipart mp = new MimeMultipart();
//        mp.addBodyPart(text);
//        mp.setSubType("mixed");
//
//        for (String fileName : fileNames) {
//            //创建邮件附件
//            MimeBodyPart attach = new MimeBodyPart();
//            DataHandler dh = new DataHandler(new FileDataSource(fileName));
//            attach.setDataHandler(dh);
//            attach.setFileName(dh.getName());  //
//
//            mp.addBodyPart(attach);
//        }
//
//        message.setContent(mp);
//        message.saveChanges();
//        //将创建的Email写入到E盘存储
//        //   message.writeTo(new FileOutputStream("E:\\attachMail.eml"));
//        //返回生成的邮件
//        return message;
//    }
//
//    /**
//     * 附件消息体
//     *
//     * @param fromTo      目标邮箱
//     * @param title       标题
//     * @param content     内容
//     * @param imagesNames 图片数组
//     * @return
//     * @throws Exception
//     */
//    private MimeMessage ImageMessage(String fromTo, String title, String content, String[] imagesNames) throws Exception {
//        //创建邮件
//        MimeMessage message = new MimeMessage(session);
//        // 设置邮件的基本信息
//        //发件人
//        message.setFrom(new InternetAddress(mailProp.getProperty("mail.account")));
//        //收件人
//        message.setRecipient(Message.RecipientType.TO, new InternetAddress(fromTo));
//        //邮件标题
//        message.setSubject(title);
//
//        // 准备邮件数据
//        // 准备邮件正文数据
//        MimeBodyPart text = new MimeBodyPart();
//        text.setContent(content, "text/html;charset=UTF-8");
//
//        // 描述数据关系
//        MimeMultipart mm = new MimeMultipart();
//        mm.addBodyPart(text);
//        mm.setSubType("related");
//        for (String imagesName : imagesNames) {
//            // 准备图片数据
//            MimeBodyPart image = new MimeBodyPart();
//            FileDataSource fileDataSource = new FileDataSource(imagesName);
//            DataHandler dh = new DataHandler(fileDataSource);
//            image.setDataHandler(dh);
//            image.setContentID(fileDataSource.getName());
//            mm.addBodyPart(image);
//        }
//        message.setContent(mm);
//        message.saveChanges();
//        //将创建好的邮件写入到E盘以文件的形式进行保存
//        //message.writeTo(new FileOutputStream("E:\\ImageMail.eml"));
//        //返回创建好的邮件
//        return message;
//    }
//}
